import "@site/src/languages/highlight";

# Ease

**Description:**

&emsp;&emsp;A record that defines a set of easing functions for use in animations.

## Linear

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that applies a linear rate of change.

**Signature:**
```tl
const Linear: EaseFunc
```

## InQuad

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow and accelerates quickly.

**Signature:**
```tl
const InQuad: EaseFunc
```

## OutQuad

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast and decelerates quickly.

**Signature:**
```tl
const OutQuad: EaseFunc
```

## InOutQuad

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow, accelerates, then decelerates.

**Signature:**
```tl
const InOutQuad: EaseFunc
```

## OutInQuad

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast, decelerates, then accelerates.

**Signature:**
```tl
const OutInQuad: EaseFunc
```

## InCubic

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow and accelerates gradually.

**Signature:**
```tl
const InCubic: EaseFunc
```

## OutCubic

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast and decelerates gradually.

**Signature:**
```tl
const OutCubic: EaseFunc
```

## InOutCubic

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow, accelerates, then decelerates.

**Signature:**
```tl
const InOutCubic: EaseFunc
```

## OutInCubic

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast, decelerates, then accelerates.

**Signature:**
```tl
const OutInCubic: EaseFunc
```

## InQuart

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow and accelerates sharply.

**Signature:**
```tl
const InQuart: EaseFunc
```

## OutQuart

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast and decelerates sharply.

**Signature:**
```tl
const OutQuart: EaseFunc
```

## InOutQuart

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow, accelerates sharply, then decelerates sharply.

**Signature:**
```tl
const InOutQuart: EaseFunc
```

## OutInQuart

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast, decelerates sharply, then accelerates sharply.

**Signature:**
```tl
const OutInQuart: EaseFunc
```

## InQuint

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow and accelerates extremely quickly.

**Signature:**
```tl
const InQuint: EaseFunc
```

## OutQuint

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast and decelerates extremely quickly.

**Signature:**
```tl
const OutQuint: EaseFunc
```

## InOutQuint

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow, accelerates extremely quickly, then decelerates extremely quickly.

**Signature:**
```tl
const InOutQuint: EaseFunc
```

## OutInQuint

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast, decelerates extremely quickly, then accelerates extremely quickly.

**Signature:**
```tl
const OutInQuint: EaseFunc
```

## InSine

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow and accelerates gradually, then slows down again.

**Signature:**
```tl
const InSine: EaseFunc
```

## OutSine

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast and decelerates gradually, then slows down again.

**Signature:**
```tl
const OutSine: EaseFunc
```

## InOutSine

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow, accelerates gradually, then decelerates gradually.

**Signature:**
```tl
const InOutSine: EaseFunc
```

## OutInSine

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast, decelerates gradually, then accelerates gradually.

**Signature:**
```tl
const OutInSine: EaseFunc
```

## InExpo

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts extremely slow and accelerates exponentially.

**Signature:**
```tl
const InExpo: EaseFunc
```

## OutExpo

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts extremely fast and decelerates exponentially.

**Signature:**
```tl
const OutExpo: EaseFunc
```

## InOutExpo

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts extremely slow, accelerates exponentially, then decelerates exponentially.

**Signature:**
```tl
const InOutExpo: EaseFunc
```

## OutInExpo

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts extremely fast, decelerates exponentially, then accelerates exponentially.

**Signature:**
```tl
const OutInExpo: EaseFunc
```

## InCirc

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow and accelerates gradually in a circular fashion.

**Signature:**
```tl
const InCirc: EaseFunc
```

## OutCirc

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast and decelerates gradually in a circular fashion.

**Signature:**
```tl
const OutCirc: EaseFunc
```

## InOutCirc

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow, accelerates gradually in a circular fashion, then decelerates gradually in a circular fashion.

**Signature:**
```tl
const InOutCirc: EaseFunc
```

## OutInCirc

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast, decelerates gradually in a circular fashion, then accelerates gradually in a circular fashion.

**Signature:**
```tl
const OutInCirc: EaseFunc
```

## InElastic

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow and accelerates exponentially, overshooting the target and then returning to it.

**Signature:**
```tl
const InElastic: EaseFunc
```

## OutElastic

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast and decelerates exponentially, overshooting the target and then returning to it.

**Signature:**
```tl
const OutElastic: EaseFunc
```

## InOutElastic

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow, accelerates exponentially, overshooting the target and then returning to it, then decelerates exponentially, overshooting the target and then returning to it again.

**Signature:**
```tl
const InOutElastic: EaseFunc
```

## OutInElastic

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast, decelerates exponentially, overshooting the target and then returning to it, then accelerates exponentially, overshooting the target and then returning to it again.

**Signature:**
```tl
const OutInElastic: EaseFunc
```

## InBack

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow and accelerates sharply backward before returning to the target.

**Signature:**
```tl
const InBack: EaseFunc
```

## OutBack

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast and decelerates sharply backward before returning to the target.

**Signature:**
```tl
const OutBack: EaseFunc
```

## InOutBack

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow, accelerates sharply backward, then decelerates sharply forward before returning to the target.

**Signature:**
```tl
const InOutBack: EaseFunc
```

## OutInBack

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast, decelerates sharply backward, then accelerates sharply forward before returning to the target.

**Signature:**
```tl
const OutInBack: EaseFunc
```

## InBounce

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow and accelerates in a bouncing motion before settling on the target.

**Signature:**
```tl
const InBounce: EaseFunc
```

## OutBounce

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast and decelerates in a bouncing motion before settling on the target.

**Signature:**
```tl
const OutBounce: EaseFunc
```

## InOutBounce

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts slow, accelerates in a bouncing motion, then decelerates in a bouncing motion before settling on the target.

**Signature:**
```tl
const InOutBounce: EaseFunc
```

## OutInBounce

**Type:** Readonly Field.

**Description:**

&emsp;&emsp;An easing function that starts fast, decelerates in a bouncing motion, then accelerates in a bouncing motion before settling on the target.

**Signature:**
```tl
const OutInBounce: EaseFunc
```

## func

**Type:** Function.

**Description:**

&emsp;&emsp;Applies an easing function to a given value over a given amount of time.

**Signature:**
```tl
func: function(self: Ease, easing: EaseFunc, time: number): number
```

**Parameters:**

| Parameter | Type | Description |
| --- | --- | --- |
| easing | EaseFunc | The easing function to apply. |
| time | number | The amount of time to apply the easing function over, should be 0 to 1. |

**Returns:**

| Return Type | Description |
| --- | --- |
| number | The result of applying the easing function to the value. |